package com.java.base.jvm;

public class JVMStack {

    public static void main(String[] args) {
        stackOverFlow(0);
    }

    public static void stackOverFlow(int i) {
        try {
            stackOverFlow(++i);
        } catch (StackOverflowError e) {
            System.out.println(i);
        }

    }

    public static int stack(int a0, int a1, int a2) {
        int a3 = a0 + a1;
        a3 = a3 * a2;
        return a3;
    }

    public static byte stack(byte arg) {
        byte[] bytes = new byte[2];
        bytes[bytes.length - 1] = arg;
        arg = bytes[bytes.length - 1];
        bytes = null;
        return arg;
    }

    public static long stack(long arg) {
        int a = 1332;
        long l = 0x77ffffffffffffffL + a;
        long r = arg + l;
        return r;
    }

    public static boolean stack(Object obj) {
        Object o = new Object();
        return o == obj;
    }

    public static int stack(int a) {
        int a0 = a + 1;
        int a1 = a0 + 1;
        int a2 = a0 + a1;
        int a3 = a1 + a2;
        int a4 = a2 + a3;
        int a5 = a0 + a4;
        int a6 = a4 + a5;
        int a7 = a5 + a6;
        return (a0 + a2 + a7) * a6;
    }

    public static int stackF(int a) {

        int a2 = 0;
        {
            int a1 = 0;
            {
                int a0 = a + 1;
                a1 = a0 + 1;
            }
            int a3 = a + a1;
            a2 = a3 + a;
        }
        return a2;
    }

}
